#ifndef __SUBPROJECTBASE_HH__
#define __SUBPROJECTBASE_HH__
#include "equation-base.hh"
#include "init-base.hh"
#include "boundary-base.hh"
class SubprojectBase {
public:
  SubprojectBase();
  virtual ~SubprojectBase();
  virtual void set_subproject_signature()=0;
  virtual void set_unique_parameters()=0;
  virtual void assign_equation()=0;  
  virtual void assign_initialcondition()=0;
  // virtual void initial_function(double* location, int index)=0;
  // virtual void boundary_function(double* location, int index, std::string flag)=0;
  virtual void assign_boundarycondition()=0;
  virtual void dataanalysis()=0;
  void set_variable_name();
  // void set_unique2_parameters();
  std::string subproject_signature;
  EquationBase* equation;
  InitBase* init;
  BoundaryBase* boundary;
};


#endif  // __SUBPROJECTBASE_HH__
